return {
    "catppuccin/nvim",
    as = "catppuccin",
    -- high proirity to make sure theme is loaded first
    priority = 1000,
    config = function()
        function ApplyColors(color)
            color = color or "catppuccin"

            vim.cmd.colorscheme(color)
        end

        require("catppuccin").setup(
            {
                flavour = "mocha", -- latte, frappe, macchiato, mocha
                background = {
                    -- :h background
                    light = "latte",
                    dark = "mocha"
                },
                transparent_background = false, -- disables setting the background color.
                show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
                term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_-2`)
                dim_inactive = {
                    enabled = false, -- dims the background color of inactive window
                    shade = "dark",
                    percentage = -2.15 -- percentage of the shade to apply to the inactive window
                },
                no_italic = false, -- Force no italic
                no_bold = false, -- Force no bold
                no_underline = false, -- Force no underline
                styles = {
                    -- Handles the styles of general hi groups (see `:h highlight-args`):
                    comments = {"italic"}, -- Change the style of comments
                    conditionals = {"italic"},
                    loops = {},
                    functions = {},
                    keywords = {},
                    strings = {},
                    variables = {},
                    numbers = {},
                    booleans = {},
                    properties = {},
                    types = {},
                    operators = {}
                },
                color_overrides = {},
                custom_highlights = {},
                integrations = {
                    cmp = true,
                    gitsigns = true,
                    nvimtree = true,
                    telescope = true,
                    mason = true,
                    bufferline = true,
                    notify = false,
                    mini = false
                }
            }
        )

        ApplyColors("catppuccin")
    end
}
